home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 9
/
FM Towns Free Software Collection 9.iso
/
t_os
/
data
/
fapx
/
fapxdnld.plp
< prev
next >
Wrap
Text File
|
1994-11-16
|
11KB
|
411 lines
/************************************************************************
* 自動ダウンロード処理 *
*************************************************************************/
/* ダウンロード制御ファイル指定の有無の判定処理 */
%AUTODNLD{
case (@filechk(UP2|{fapxdown.ctl}),
{Yes},
{
display({自動ダウンロードを開始します\n});
footnote({自動ダウンロードをしています});
AUTOdown(UP2|{fapxdown.ctl});
dispoff(!DEBUG);
command({copy }|UP2|{fapxdown.ctl }|UP2|{fapxdown.bak});
delfile(UP2|{fapxdown.ctl});
case (@filechk(UP2|{fapxdown.rsv}),
{Yes},
{
copyfile(UP2|{fapxdown.rsv},UP2|{fapxdown.ctl});
delfile(UP2|{fapxdown.rsv})
});
dispoff({No});
});
};
%AUTOdown{
[file]
case (@filechk(file),
{Yes},
{
line:=0;
loop ({
line:=line+1;
linebuf:={};
linebuf:=@read(file,line,1);
case (@getchar(linebuf,1,5),
{保留;},
{write(UP2|{fapxdown.rsv},linebuf);im({Yes})},
{割引;},
{
case (@discntime(@daylong),
{Yes},
{linebuf:=@getchar(linebuf,6);AUTOdwn1},
{No},
{write(UP2|{fapxdown.rsv},linebuf);
im({Yes})}
);
},
,
{AUTOdwn1}
);
});
AUTOdwn1;
},
{No},
{
SNDMSG({okasi_f.snd});
display({\n}|file|{制御ファイルがありません\n});
});
};
/* ダウンロード元の振り分け */
%AUTOdwn1{
case (@head(linebuf,{=}),
{forum}, /* フォーラムからのダウンロード */
{
DLIBDOWN(@tail(linebuf,{forum=},{;}),
@tail(linebuf,{libno=},{;}),
@tail(linebuf,{datano=},{;}),
@tail(linebuf,{docfile=},{;}),
@tail(linebuf,{datafile=},{;}));
im({Yes}); /* 終わったら次の行を読む */
},
{profile}, /* プロフィール情報のダウンロード */
{
PROFDOWN(@tail(linebuf,{profile=},{;}));
im({Yes}); /* 終わったら次の行を読む */
},
{liblistall}, /* 指定DLリストのダウンロード */
{
DLLSTALL(@tail(linebuf,{forum=},{;}),
@tail(linebuf,{lib=},{;}),
@tail(linebuf,{line=},{;}));
im({Yes}); /* 終わったら次の行を読む */
},
{myforum}, /* MYFORUM.LOG 更新 */
{
MFRMDOWN;
im({Yes}); /* 終わったら次の行を読む */
},
{},{im({No})}, /* 空文字列なら終了 */
,{im({Yes})} /* それ以外なら次の行を読む */
);
};
/************************************************************************
* フォーラムのデータライブラリからダウンする *
*************************************************************************/
%DLIBDOWN{
[forum,libno,datano,docfile,datafile]
case (forum={}||libno={}||datano={}||docfile={},
{Yes},
{
SNDMSG({okasi_f.snd});
display({ダウンロード制御データが不足しているため}|
{処理をスキップします\n});
write(UP2|{fapxdown.rsv},{保留;}|linebuf);
},
{No},
{
display(forum|{の}|libno|{番ライブラリの}|
datano|{番をダウンロードします\n});
footnote(forum|{の}|libno|{番ライブラリの}|
datano|{番をダウンロードします});
case (@GO({forum/}|forum|{/lib/}|libno),
{Yes},{LIBDOWN(datano,docfile,datafile)},
{No},{write(UP2|{fapxdown.rsv},{保留;}|linebuf)}
);
});
};
%LIBDOWN{
[datano,docfile,datafile]
type({DOWN }|datano|{ PROT:BPL\n});
mkdir2(@body(docfile,,{\}));
delfile(docfile);
write(docfile,{FORUM:}|forum|{ LIB:}|libno|{ #}|datano|{\n});
receive(docfile);
wait (Wtime2*5,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{項目 (1:OK 2:NG E:終了)\n:},
{
stoprec;
case (datafile={},
{Yes},{type({2\n});WAITABORT(Wtime2)},
{No},
{
type({1\n});
WAITCHAR(Wtime2,{ファイル名 (改行のみで終了)\n:},{});
%Gfsize @getline(@laststr(64),2,1);
/*display(Gfsize|{\n});*/
%Fsize @head(Gfsize,{バ});
mkdir2(@body(datafile,,{\}));
case (@filechk(datafile),
{Yes},
{
display({\nデータファイルと同名の}|
{ファイルがあります\n});
display({古いファイルを*.BAKに改名します\n});
dispoff(!DEBUG);
command({copy }|datafile|{ *.bak});
delfile(datafile);
dispoff({No});
});
footnote(forum|{の}|libno|{番ライブラリの}|datano|
{番をダウンロードします}|
{(★中止 PUSH:[Cancel]→[No])});
%timeP @linetime;
type(datafile);type({\n});
wait (,,
{4:ダウンロード E:終了)\n>},
{
%timePS @linetime-timeP;
UPDNRATE({down},datafile,Fsize,timePS);
SNDMSG({owata_f.snd});
},
{◆アボートリクエスト◆},
{
display({\nダウンロードが中断されました\n}|
{ダウンロード途中の概要/データ}|
{ファイルを消去します(i◇i)\n});
SNDMSG({owata_f.snd});
WAITCHAR(Wtime2,{4:ダウンロード E:終了)\n>},{});
delfile(docfile);
delfile(datafile);
write(UP2|{fapxdown.rsv},{保留;}|linebuf);
});
});
},
{-該当するデータはありません-\n},
{
stoprec;
WAITCHAR(Wtime2,{4:ダウンロード E:終了)\n>},{});
display({データ番号が違うため次の処理を行います\n});
SNDMSG({okasi_f.snd});
write(UP2|{fapxdown.rsv},{保留;}|linebuf);
});
};
/************************************************************************
* プロフィール情報をダウンする *
*************************************************************************/
%PROFDOWN{
[uid]
%readall{
wait (Wtime2*3,{AbortOff({ホストがおもいよ~})},
{◆該当利用者はいません◆\n>},{SNDMSG({okasi_f.snd})},
{◆入力データエラー◆\n>},{SNDMSG({okasi_f.snd})},
{プロフィールはありません-\n>},,
{\n>},
{wait(2);case(@laststr(2),{>},,,readall)},
{\nHP>},
{wait(2);case(@laststr(3),{HP>},,,readall)}
);
};
display(uid|{の}|{プロフィール情報をダウンロードします\n});
footnote(uid|{の}|{プロフィール情報をダウンロードします});
case(CUGFLAG,{Yes},{dispoff(!DEBUG);GONIF;dispoff({No})});
case(Where,{prof},,,
{type({GO PROFILE\n});WAITABORT(Wtime2);Where:={prof}});
case (uid={},
{Yes},
{
SNDMSG({okasi_f.snd});
display({ダウンロード制御データが不足しているため}|
{処理をスキップします\n});
write(UP2|{fapxdown.rsv},{保留;}|linebuf);
},
{No},
{
var UID [90];
mkdir2(LOG2|{profile});
UID:=uid;
loop ({
%id1 @head(UID,{,});
UID:=@body(UID,{,});
case (@nochar(id1)==8,
{Yes},
{
type({PROF }|id1|{\n});
WAITCHAR(Wtime2,{PROF }|id1|{\n},
{receive(TEMP2|{prof.tmp})});
readall;stoprec;
%prp @read(TEMP2|{prof.tmp});
%pft @getline(prp,1,@noline(prp)-2);
%idp LOG2|{profile\}|id1|{.prf};
%prh {PROF:}|id1|{ *** };
%hck {Gotten by FAPX\n};
case (@filechk(idp),{Yes},
{
%idq @body(@tail(@read(idp),prh),hck);
case (pft,idq,,,
{write(idp,CRLF|prh|@daylong|
{ *** ---------- }|hck|pft)
});
},
{No},
{write(idp,prh|@daylong|
{ *** ---------- }|hck|pft)
});
delfile(TEMP2|{prof.tmp});
});
case(UID,{},{im({No})},,{im({Yes})});
});
});
};
/************************************************************************
* 指定ライブラリーの全リストをダウンする処理 *
*************************************************************************/
%DLLSTALL{
[forum,lib,line]
display({指定ライブラリのリストをダウンロードします(~◇~)\n});
footnote({指定ライブラリのリストをダウンロードします});
case (forum={}||lib={},
{Yes},
{
SNDMSG({okasi_f.snd});
display({ダウンロード制御データが不足しているため}|
{処理をスキップします\n});
write(UP2|{fapxdown.rsv},{保留;}|linebuf);
},
{No},{DLLSTAL1(forum,lib,line)}
);
};
%DLLSTAL1{
[forum,lib,line]
var liblist [55];
liblist:=lib;
delfile(TEMP2|{fapx.log});
Where:={};
DOWNSTART;
case(LOGmode={forum},{Yes},{LOGforum(forum,{start})});
case (@GO({forum/}|forum),
{Yes},
{
case (liblist={ALL}||liblist={all},
{Yes},
{
liblist:={};
type({LIB\n});
wait (Wtime2,{AbortOff(
{\nホストの反応が鈍いよぉ~\n})},
{最新 ライブラリ名\n},{}
);
loop ({
wait (Wtime2,{AbortOff(
{\nホストの反応が鈍いよぉ~\n})},
{\n>},{im({No})},
{\n},
{
%line1 @body(@laststr(80),{\n},{\n});
case (0<@getchar(line1,1,4)+1-1 &&
@getchar(line1,1,4)+1-1<21,
{Yes},
{case(liblist={},
{Yes},
{
liblist:=
@getchar(line1,1,4)
+1-1;
},
,
{liblist:=liblist|{,}|
@getchar(line1,1,4)
+1-1;
});
im({Yes});
});
});
});
},
{No},
{
type({LIB\n});
wait (Wtime2,{AbortOff(
{\nホストの反応が鈍いよぉ~\n})},
{\n>},{}
);
});
case(DEBUG,{Yes},{display({\nliblist=}|liblist|{\n})});
case (line={} || line={ALL} || line={all},
{No},
{case (8<line+1-1 && line+1-1<100,
{Yes},
{
type({SET PAGE ON\n});wait(,,{>});
type({SET LINE }|line|{\n});wait(,,{>});
},
{No},
{
display({\n行数指定の数値が異常です(~_~メ) }|
{以後はNIFTYのデフォルト値で行います\n});
type({SET PAGE ON\n});wait(,,{>});
});
});
loop ({
%libno @head(liblist,{,});
case (libno,
{},{im({No})}, /* ライブラリリスト終了 */
,
{
/*type({LIB }|libno);type({\n});*/
footnote({LIB }|liblist|{のリストをダウンします }|
{ 現在:LIB }|libno);
case(@GO({forum/}|forum|{/lib/}|libno),
{Yes},
{%a @laststr(128);
%b @head(@body(a,{登録数 :}),{-\n});
dispoff(!DEBUG);
display({登録数:}|b|{\n});
dispoff({No});
case( b == 0,
{No},
{type({DIR\n});
wait(,,{\n>},);
type({E\n});
WAITABORT(Wtime2)});
im({Yes})},
{No}, /* n番ライブラリなしの場合 */
{im({Yes})}
);
});
liblist:=@body(liblist,{,});
});
case (LOGmode={forum},
{Yes},{LOGforum(forum,{stop})}
);
},
{No},
{
write(UP2|{fapxdown.rsv},{保留;}|linebuf);
case(LOGmode={forum},{Yes},{LOGforum(forum,{cancel})});
});
DOWNSTOP;
};
/************************************************************************
* MYFORUM.LOG を更新する処理 *
*************************************************************************/
%MFRMDOWN{
display({MYFORUM.LOG を更新します\n});
footnote({MYFORUM.LOG を更新します});
delfile(LOG2|{myforum.log});
/**/ case(CUGFLAG,{Yes},{dispoff(!DEBUG);GONIF;dispoff({No})});
receive(LOG2|{myforum.log});
type({MYFORUM\n});
wait(,,
{表示終了\n},{stoprec;WAITABORT(Wtime2)},
{ません -\n},{stoprec;WAITABORT(Wtime2)});
};
/************************************************************************
* ダウンロードメイン処理 *
*************************************************************************/
var line [3];
var linebuf [258];
var mexpflg [3];
mexpflg:={No};
AUTODNLD;
Where:={};